package br.com.projetus.servico
{
	import br.com.projetus.dominio.Produto;
	
	import mx.rpc.AsyncToken;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.remoting.mxml.RemoteObject;

	public class ProdutoServico
	{
		private var remoteObject: RemoteObject;
		
		public function ProdutoServico()
		{
			remoteObject = new RemoteObject("ProdutoServico");
			
			/*remoteObject.adicionarProduto();
			remoteObject["adicionarProduto"]();
			remoteObject.getOperation("aidicionarProduto").send();*/
		}
		
		public function salvar(produto: Produto):AsyncToken  {
			return remoteObject.getOperation("salvar").send(produto);
		}
		
		public function excluir(produto: Produto):AsyncToken  {
			return remoteObject.getOperation("excluir").send(produto);
		}
		
		public function listar(): AsyncToken  {
			return remoteObject.getOperation("listar").send();
		}
		
		public function procurar(descricao: String):AsyncToken  {
			return remoteObject.getOperation("procurar").send(descricao);
		}
		
		public function localizar(...args):AsyncToken  {
			return remoteObject.getOperation("localizar").send(args);
		}
		
		protected function faultHandler(event:FaultEvent, token:Object=null):void
		{
			trace("Falha ao executar método remoto: " + event.fault.faultString);
		}
		
	}
}